package utility;

import java.util.ArrayList;

public class DebugUtility {

    private static DebugUtility instance;
    private final ArrayList<String> debugList;

    private static final boolean DEBUG_MODE = false;

    private DebugUtility() {
        debugList = new ArrayList<>();
    }

    public static DebugUtility getInstance() {
        if (instance == null) {
            instance = new DebugUtility();
        }
        return instance;
    }

    /**
     * Metoden bruges til at udskrive debug beskeder. Der vil blie udskrevet
     * klassenavn, debugtype samt en debugbesked
     *
     * @param object Bør blot kaldes med en 'this'-reference.
     * @param debugType Beskriver hvilken type debug-besked man udskriver.
     * informerer om, advarer om
     * @param debugMsg
     *
     * Printer i outputtet: klassens navn + debugtype+ debugMsg.
     */
    public void soutDebugLine(Object object, int debugType, String debugMsg) {
        String debugTypeStr = "";
        debugList.add(debugMsg);
        if (debugType == 0) {
            debugTypeStr = "informerer om";
        } else if (debugType == 1) {
            debugTypeStr = "advarer om";
        }

        if (DEBUG_MODE) {
            System.out.println(object.getClass().getName() + " | " + debugTypeStr + " | " + debugMsg);
        }

    }
}
